<?php

namespace app\common\model\Subject;

use think\Model;

// 软删除的模型
use traits\model\SoftDelete;

class Subject extends Model
{
    //继承软删除
    use SoftDelete;

    //模型对应的是哪张表
    protected $name = "subject";

    //指定一个自动设置的时间字段
    //开启自动写入
    protected $autoWriteTimestamp = true; 

    //设置字段的名字
    protected $createTime = "createtime"; //插入的时候设置的字段名

    //禁止 写入的时间字段
    protected $updateTime = false;

    // 软删除的字段
    protected $deleteTime = 'deletetime';

     // 追加属性
     protected $append = [
       'likes_text',
       'thumbs_cdn', // 课程封面
       'content_text', // 过虑内容标签
    ];

    public function getThumbsCdnAttr($value, $data)
    {
        $default = '/assets/home/images/cbd.jpg';
        $thumbs = empty($data['thumbs']) ?  $default : $data['thumbs'];
        $thumbs = is_file(".".$thumbs) ? $thumbs : $default;
        return $thumbs;
    }

    //获取器方法
    public function getLikesTextAttr($value, $data)
    {
        $likes = trim($data['likes']);
         //字符串转化为数组
        $likes = explode(',', $data['likes']);
        $likes = array_filter($likes);
        return count($likes);
    }

    
    // 过滤内容标签
    public function getContentTextAttr($value, $data)
    {
        
        $content = empty($data['content']) ?  '' : preg_replace("/<.+?>|&.+?;/","",$data['content']);
        return $content;
        
    }


    //自定义一个关联查询的方法 自定义名字
    public function category()
    {
        // fa_subject 课程表
        //     cateid 分类id

        // fa_category 课程分类表
        //     id 主键

        // select * from fa_subject AS sub LEFT JOIN fa_category AS cate ON sub.cateid = cate.id where sub.id = 23
        //belongsTo 关联方法
        //关联的模型 app\common\model\Subject\Category
        // 关联的外键id 字段名
        // 关联的主键id 字段名
        // 别名的数据参数 没有就给空
        // 怎样连接
        // setEagerlyType(0) JOIN 查询
        // setEagerlyType(1) IN 查询
        return $this->belongsTo('Category',  'cateid', 'id', [], 'LEFT')->setEagerlyType(0);
    }

  
}
